package LogicaClasesNew;


import java.io.FileInputStream;
import java.util.ArrayList;
import java.util.List;
import java.util.Properties;
import javax.jws.WebMethod;
import javax.jws.WebService;
import javax.jws.soap.SOAPBinding;
import javax.xml.ws.Endpoint;





@WebService
@SOAPBinding(parameterStyle = SOAPBinding.ParameterStyle.WRAPPED)
public class WsIordenCompra {  
    
    private Endpoint endpoint = null;
    private IcontroladorOrdenCompra ICO;

    //Constructor que publica el WebService con sus metodos.
    public WsIordenCompra() {
        
    Fabrica fabrica = Fabrica.getInstance();
    this.ICO = fabrica.getControladorOrdenCompra();
try{
    Properties preferences = new Properties();
    FileInputStream in = new FileInputStream(System.getProperty("user.home")+"/configWebServices.ini");
    preferences.load(in);
    String host = preferences.getProperty("Host");
    String port = preferences.getProperty("Port");
    endpoint = Endpoint.publish("http://"+host+":"+port+"/iordencompra", this);
    }
    catch(Exception ex){
    //    endpoint = Endpoint.publish("http://localhost:8280/iordencompra", this);
    }    

		
//.....WebMethod.....
    }
    @WebMethod
    public void createOrdenCompra(int Numero, String FechaOrden, float precioTotal, String Nickname){
        ICO.createOrdenCompra(Numero, FechaOrden, precioTotal, Nickname);
    }
    
    @WebMethod
    public int createOrdenCompra2(String FechaOrden, float precioTotal, String Nickname, Estado estado){
        return ICO.createOrdenCompra2(FechaOrden, precioTotal, Nickname, estado);
    }
    
    @WebMethod
    public void addLineaToOrdenCompra(int NumeroOrden, int LineaOrden){
        ICO.addLineaToOrdenCompra(NumeroOrden, LineaOrden);
    }
    
    @WebMethod
    public OrdenCompra findOrdenCompra(int Numero){
        return ICO.findOrdenCompra(Numero);
    }
    
    @WebMethod
    public ArrayList<OrdenCompra> findOrdenCompraEntities(){
        return new ArrayList(ICO.findOrdenCompraEntities());
    }
    
    @WebMethod
    public ArrayList<LineaOrden> getListadoLineasXord(int numOrden){
        return new ArrayList(ICO.getListadoLineasXordenes(numOrden));
    }
    
    @WebMethod
    public void editOrdenCompra2(int numeroOrdenCompra, String FechaOrden, float precioTotal, String Nickname, Estado estado, String fechaOrdenC, String fechaordenP){
        ICO.editOrdenCompra2(numeroOrdenCompra, FechaOrden, precioTotal, Nickname, estado, fechaOrdenC, fechaordenP);
    }
    
    @WebMethod
    public void eliminarOrdenCompra(int numeroOrdenCompra){
        ICO.eliminarOrdenCompra(numeroOrdenCompra);
    }
    
    
    @WebMethod(exclude = true)
	public Endpoint getEndpoint() {
            return endpoint;
    }
    
}


